#ifndef Scene_h__
#define Scene_h__
#pragma once

#include <vector>

namespace le
{
	class Visual;
	class Renderer;
}

namespace le
{
	class Scene
	{
	public:
		Scene();
		virtual ~Scene();

		// Attach a visual to the scene. The scene does NOT take ownership!
		void AttachVisual(le::Visual* visual);
		// Detach a visual from the scene
		void DetachVisual(le::Visual* visual);
		// Render the entire scene
		void Render(le::Renderer* renderer);

	private:
		std::vector<le::Visual*> m_AttachedVisuals;
	};
}

#endif // Scene_h__